#include <boost/shared_ptr.hpp>
#include <boost/weak_ptr.hpp>
#include <iostream>
class B;

class A {
public:
	~A() { std::cout << "A is destroyed\n"; }
	boost::weak_ptr<B> pb;
};

class B {
public:
	~B() { std::cout << "B is destroyed\n"; }
	boost::shared_ptr<A> pa;
};

